﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CrmContacto.Contracts;
using CrmContacto.Data;
using Web.Framework.Svc;
using System.Net.Mail;
using System.IO;
using CrmContacto.Contracts.Enums;
using Web.Framework.Translate;
using System.Transactions;
using CrmContacto.Services.Classes;
using System.Configuration;
using CrmContacto.Services.Common;
using System.Threading;
using CrmContacto.Services.Marketing.Promociones;
using CrmContacto.Contracts.Contracts.Search;
using CrmContacto.Contracts.Promociones;

namespace CrmContacto.Services.Marketing
{
    //public class PromocionUsoPenguinMesCumpleanios : PromocionesDeUso, IPromocionStrategy
    //{
    //    public int EmpresaId { get; set; }
    //    public override string Nombre
    //    {
    //        get { return "PromocionUsoPenguinMesCumpleanios"; }
    //    }

    //    protected override void ValidarAlAsociarPromocionInternal(DbAccionDeMarketingPromocion dbAccionPromocion, PtoVentaRegistroCliente customer)
    //    {
    //        if (!customer.CumpleMes.HasValue || customer.CumpleMes.Value != DateTime.Now.Month)
    //        {
    //            throw new SvcBusinessException(string.Format(LocalizationProvider.Instance["Bo.Validacion.PromoPenguinMesCumple.FueraDeMesCumpleanios"], dbAccionPromocion.AccionDeMarketing.CodigoParaPDV));
    //        }
    //    }

    //    public override bool FiltrarPromocionEnPdv(CrmContactoEntities ctxCrm, DbAccionDeMarketing accionesDeMarketing, CampaniasActivasSearch search)
    //    {
    //        bool esValida = false;
    //        if (search.ContactoId.HasValue)
    //        {
    //            if (accionesDeMarketing != null)
    //            {
    //                DbContacto dbContacto = ctxCrm.DbContactoes.FilterLogicalRemoved().Where(c => c.Id == search.ContactoId.Value && c.EmpresaId == search.EmpresaId).SingleOrDefault();
    //                if (dbContacto != null)
    //                {
    //                    esValida = false;
    //                    // Si el contacto fue registrado antes del 6/7/2012
    //                    if (dbContacto.CumpleMes.HasValue && dbContacto.CumpleMes.Value == DateTime.Now.Month)
    //                    {
    //                        if (accionesDeMarketing.AccionDeMarketingPromocion.AccionDeMarketingPromocionUsoes.Where(u => u.ContactoId == search.ContactoId && u.EmpresaId == search.EmpresaId).Count() == 0)
    //                        {
    //                            esValida = true;
    //                        }
    //                    }
    //                }
    //            }
    //        }

    //        return !esValida;
    //    }

    //    public ParticipantesSearchResult GetParticipantes(ParticipantesSearch searchParam)
    //    {
    //        throw new NotImplementedException();
    //    }
    //}
}
